/*
 ============================================================================
 Name        : DataStructureInC.c
 Author      : William Nie
 Version     :
 Copyright   : Copyright reserved 2011
 Description : Hello World in C, Ansi-style
 ============================================================================
 */

#include"SString.h"

//void testList();
//void testDuList();
//void testBiTree();
//void testQueue();
//void testStack();
void testSString();

int main(int argc, char *argv[]) {
	testSString();

	return 0;
}

void testSString(){
	SString sString;
	SStrAssign(&sString,"NoNoNo!");

	PrintSString(sString);

	fflush(stdin);
	getchar();
}

//void testStack(){
//	Stack *stack;
//	InitStack(&stack,100);
//	int a =111;
//
//	FillStack(stack);
//	StackTraverse(stack,DefaultStackVisit);
//
//	printf("\n");
//	Push(stack,&a);
//	StackTraverse(stack,DefaultStackVisit);
//
//	printf("\n");
//	Pop(stack);
//	Pop(stack);
//	StackTraverse(stack,DefaultStackVisit);
//
//	fflush(stdin);
//	getchar();
//}
//
//void testQueue(){
//	Queue *queue;
//
//	InitQueue(&queue);
//	FillQueue(queue);
//
//	QueueTraverse(queue,DefaultQueueVisit);
//	printf("\n");
//	DeQueue(queue);
//	QueueTraverse(queue,DefaultQueueVisit);
//	printf("\n");
//	ClearQueue(queue);
//	QueueTraverse(queue,DefaultQueueVisit);
//
//
//	fflush(stdin);
//	getchar();
//}

//void testBiTree() {
//	BiTree *biTree;
//	biTree = CreateBiTree();
//	//	printf("PreOrder:\n");
//	//	PreOrderTraverse(biTree->root,DefaultBiVisit);
//	//
//	//	printf("\nInOrder:\n");
//	//	InOrderTraverse(biTree->root,DefaultBiVisit);
//	//
//	//
//
//	//
//	LevelOrderTraverse(biTree,DefaultBiVisit);
//
//}
//
//void getMaxNumAndAverageNum(DuList *duList) {
//	int maxNum = duList->head->next->data;
//	float aveNum = 0.0;
//	ElemType *elem = duList->head->next;
//
//	while (elem != duList->head) {
//		if (maxNum < elem->data) {
//			maxNum = elem->data;
//		}
//
//		aveNum += elem->data;
//
//		elem = elem->next;
//	}
//	aveNum /= duList->length;
//
//	printf("������Ϊ��\n%d\n", maxNum);
//	printf("ƽ��ֵΪ��\n%f", aveNum);
//}
//
//void reverseDuList(DuList *duList) {
//	ElemType *listHead = duList->head;
//	ElemType *elemReverse = duList->head->prior;
//	ElemType *elemTemp;
//
//	while (elemReverse != listHead) {
//		elemTemp = elemReverse->prior;
//		elemReverse->prior = elemReverse->next;
//		elemReverse->next = elemTemp;
//
//		elemReverse = elemReverse->next;
//	}
//
//	elemTemp = listHead->prior;
//	listHead->prior = listHead->next;
//	listHead->next = elemTemp;
//}
//
//void testList(){
//
//	List *list ;
//
//	InitList(&list);
//	PrintListElem(list);
//
//	FillList(list);
//	PrintListElem(list);
//
//	ElemType elem = GetElem(list,3);
//	printf("%d\n\n",elem);
//
//	int loc = LocateElem(list,2,DefaultCompare);
//	printf("%d\n\n",loc);
//
//	ElemType priorElem = PriorElem(list,2);
//	printf("%d\n\n",priorElem);
//
//	ElemType nextElem = NextElem(list,2);
//	printf("%d\n\n",nextElem);
//
//	ListInsert(list,2,99);
//	PrintListElem(list);
//
//	ListDelete(list,2);
//	PrintListElem(list);
//
//	ListTraverse(list,DefaultVisit);
//
//	ClearList(list);
//	PrintListElem(list);
//
//}
//
//void testDuList() {
//	DuList *duList;
//
//	InitDuList(&duList);
//
//	FillDuList(duList);
//
//	PrintDuListElem(duList);
//
//	printf("\n\n\n");
//
//	getMaxNumAndAverageNum(duList);
//
//}
